perm filename DEMON.GC[AID,LSP] blob
sn#490817 filedate 1980-01-01 generic text, type C, neo UTF8
COMMENT ā VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 (DECLARE (FASLAPSETUP/| T))
C00003 00003 (cond ((status feature newio)
C00005 ENDMK
Cā;
(DECLARE (FASLAPSETUP/| T))
; This routine computes an estimate of the size of the Maclisp lowseg
; in pages.
(LAP CORESIZE SUBR)
(ARGS CORESIZE (NIL . 0))
;(MOVE TT (- D10NAM 133)) ;move tt,hixm
(MOVE TT 44) ;jobhrl
(IDIVI TT 512.)
(ADDI TT 1)
(JSP T FXCONS)
(POPJ P)
NIL
(cond ((status feature newio)
(setq gc-overflow 'gc-overflow-daemon))
(t
(SSTATUS INTERRUPT 13. 'GC-OVERFLOW-DAEMON) ))
(DECLARE (SPECIAL %%GC-VERBOSE%% %%GC-TRACE%%) (*EXPR CORESIZE))
(DECLARE (FLONUM %%GC-SEGSIZE%%))
(DECLARE (SPECIAL %%GC-SEGSIZE%% %%GC-CORESIZE%%))
(SETQ %%GC-VERBOSE%% NIL %%GC-SEGSIZE%% 1024.0 %%GC-CORESIZE%%
(COND ((OR (STATUS FEATURES ONESEGMENT)
(STATUS FEATURES TOPS-20))
512.0)
(T 256.0))))
(SETQ %%GC-TRACE%% NIL)
(DEFUN GC-OVERFLOW-DAEMON (X)
(and %%gc-trace%%
(progn
(TERPRI)(PRINC '|In the overflow demon, dealing with |)
(princ x)(terpri)))
((LAMBDA(Q)
(APPLY 'ALLOC
(LIST (LIST X (LIST NIL Q NIL))))
(AND %%GC-VERBOSE%%
((LAMBDA(āR)
(TERPRI)
(PRINC '|...increasing |)
(PRINC X)
(PRINC '| GCMAX TO |) (PRINC Q)(PRINC '| WORDS...|)
(TERPRI)) NIL)))
(+ (FIX (*$ (//$ (-$ %%GC-CORESIZE%% (FLOAT (CORESIZE))) %%GC-CORESIZE%%)
(FLOAT %%GC-SEGSIZE%%)))
(CADR (GET (CONS NIL (ALLOC T))
X)))))